#pragma once

#include "Coord.h"

class WP : public Coord // landing waypoint
{
protected:
	double alt; // Feet
	unsigned int id;
    static unsigned int nextId;
	
public:
	WP();
	WP(double lat, double lon, double alt);
	
	void maked(double dlat, double dlon, double alt);
	void maker(double rlat, double rlon, double alt);
	
	// Getters
	// All the getters besides alt and id have been inherited from Coord
	double getAlt() const;
	unsigned int getId() const;
	
	//Setters
	void setDcoord(double dlat, double dlon);
	void setRcoord(double rlat, double rlon);
	void setLatd(double latd);
	void setLond(double lond);
	void setLatr(double latr);
	void setLonr(double lonr);
	void setAlt(double alt);
	
	//Generation
	double dist3D(const WP &wp, double unit) const;
	double thetaD(const WP &wp) const;
	double thetaR(const WP &wp) const;
};

class LWP : public WP // landing waypoint
{
protected:
	double landHeading,glideSlope;

public:
	LWP(double lat, double lon, double alt, double heading, double gs);
	
	//setters
	void setHeading(double heading);
	void setGlideSlope(double gs);
	
	//getters
	double getHeading();
	double getGlideSlope();
};
